

package cn.shengchao.examstar.product.acl.ports.repositories;

import cn.shengchao.examstar.product.acl.ports.repositories.message.MemberCourseOrder;
import cn.shengchao.examstar.product.domain.entity.Course;
import cn.shengchao.examstar.product.domain.entity.CourseConfig;
import cn.shengchao.examstar.product.domain.entity.CourseKnowledgeNode;
import cn.shengchao.examstar.product.infrastructure.dao.po.TProductCourse;
import cn.shengchao.examstar.product.infrastructure.dao.po.TProductCourseNodes;

import java.math.BigDecimal;
import java.util.List;

public interface ICourseRepository {

    Long edit(Course course);

    TProductCourseNodes editCourseNodes(CourseKnowledgeNode courseKnowledgeNode);

    CourseKnowledgeNode getCourseNode(Long nodeId);

    void deleteCourseNodes(Long nodeId);

    void editCourseNodeConfig(CourseConfig courseConfig);

    CourseConfig getCourseNodeConfig(Long courseId);

    void updateCoursePrice(Long id, BigDecimal price, BigDecimal discountPrice);

    List<MemberCourseOrder> getMemberCourse(Long userId, String courseName, String sort);

    boolean isK12(Long courseId);

    TProductCourse ofCourse(Long courseId);


    int updateProductCourse(TProductCourse productCourse);

    List<Long> selectCourseIdsByPrefixSpecTag(String versionPrefix, String specTag);

    void updateCourseStatusById(Long courseId, Integer status);
}
